package org.jeecg.modules.demo.com.kunpeng.service;

import cn.hutool.core.text.StrBuilder;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.demo.com.kunpeng.entity.ProjectCostApply;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.demo.com.kunpeng.entity.dto.ProjectCostApplyQueryDTO;
import org.jeecg.modules.demo.com.kunpeng.entity.dto.UpdateOaProjectCostApplyDTO;
import org.jeecg.modules.demo.com.kunpeng.vo.OaProjectCostApplyPage;
import org.jeecg.modules.demo.com.kunpeng.vo.ProjectCostApplyListQueryVO;

/**
 * @Description: 项目费用申请表
 * @Author: jeecg-boot
 * @Date:   2022-12-15
 * @Version: V1.0
 */
public interface IProjectCostApplyService extends IService<ProjectCostApply> {

    /**
     * 全局模糊查询
     * @param page
     * @return
     */
    Page<ProjectCostApplyListQueryVO> listByKeyWords(Page<ProjectCostApplyListQueryVO> page, ProjectCostApplyQueryDTO projectCostApplyQueryDTO);

    /**
     * 项目列表页面跳转
     * @param page
     * @param projectId
     * @return
     */
    Page<ProjectCostApplyListQueryVO> listByProjectId(Page<ProjectCostApplyListQueryVO> page,String projectId);

    /**
     * OA-新增项目费用申请（审批表，审批记录表，审批步骤表，消息表）
     */
    void insertOaProjectCostApply(OaProjectCostApplyPage oaProjectCostApplyPage);

    /**
     * 根据id修改项目费用申请状态
     */
    void updateProjectCostApplyStatus(String id,String state);

    /**
     * 根据id修改项目费用申请状态
     */
    void updateProjectCostApplyIsDeleteById(String id);

    /**
     * 根据id修改项目费用申请关联数据
     * @param updateOaProjectCostApplyDTO
     */
    void updateProjectCostApplyById(UpdateOaProjectCostApplyDTO updateOaProjectCostApplyDTO);
}
